package com.niiwoo.civet.mobile.vo.response.invest;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;

import java.math.BigDecimal;
import java.util.Date;

/**
 * Created by zhangwanli on 2018/5/12.
 */
@Setter
@Getter
@Accessors(chain = true)
@ApiModel("投资订单某期回款计划详情")
public class InvestOrderReceivePaymentDetailResponseVO {
    @ApiModelProperty(value = "投资订单id", required = true)
    private Long investOrderId;

    @ApiModelProperty(value = "第几期", required = true)
    private Integer periodNum;

    @ApiModelProperty(value = "预计回款日期", required = true)
    private Date expectReceiveDate;

    @ApiModelProperty(value = "实际回款日期", required = true)
    private Date actualReceiveDate;

    @ApiModelProperty(value = "预计回款金额", required = true)
    private BigDecimal totalAmount;

    @ApiModelProperty(value = "待收明细")
    private AmountDetail dueDetail;

    @ApiModelProperty(value = "已收明细")
    private AmountDetail receivedDetail;

    @ApiModelProperty(value = "计息开始日期", required = true)
    private Date interestBeginDate;

    @ApiModelProperty(value = "计息结束日期", required = true)
    private Date interestEndDate;

    @ApiModelProperty(value = "罚息开始日期")
    private Date penaltyFeeBeginDate;

    @ApiModelProperty(value = "罚息结束日期")
    private Date penaltyFeeEndDate;

    @ApiModelProperty(value = "逾期天数")
    private Integer overdueDays;

    @ApiModelProperty(value = "垫付提示文案", required = true)
    private String advanceHints;

    @ApiModelProperty(value = "回款状态：1待回款，2按时回款，3逾期中，4逾期已收款，5提前回款，6已转让，7已提前结清，8逾期部分回款")
    private Byte receivedStatus;

    @ApiModelProperty(value = "转让期数", required = true)
    private Integer numberOfTransfers;

    @ApiModelProperty(value = "结清期数", required = true)
    private Integer clearingPeriodNumber;

    @Setter
    @Getter
    @Accessors(chain = true)
    @ApiModel("金额详情")
    public static class AmountDetail {
        @ApiModelProperty(value = "本金", required = true)
        private BigDecimal capital;

        @ApiModelProperty(value = "利息", required = true)
        private BigDecimal interest;

        @ApiModelProperty(value = "加息", required = true)
        private BigDecimal addInterest;

        @ApiModelProperty(value = "罚息", required = true)
        private BigDecimal penaltyFee;
    }

}
